Network service selection

ABSTRACT

A method of selecting a suitable service for the delivery of a communication across an integrated network is disclosed. Before now, users had to select the service that best suited their needs at the time of each delivery. By providing a computer programmed to act as a purchasing agent with data indicating the desirability of stability in the network service (that data representing the price the user is prepared to pay for stability) an automatic selection of the service to be provided to the communication is enabled. An embodiment is described in which different degrees of stability are given to different content file deliveries in dependence on the importance attached to the recipient by a content provider. The invention could equally be used to provide an appropriate services for many different types of network traffic.

The present invention relates to a method of selecting network servicesfrom a plurality of network services available for a communication.

Conventional telephony networks offer a service which reserves 64kbits⁻¹ of the network's capacity for the duration of a user's call.This service is suitable for voice telephony, where a signalrepresenting the voice of the user must be continuously sent across thenetwork to the other party to the conversation. In the trunk links ofthe telephony network, a number of telephone calls are carried on thelink, each having its own timeslot in a sequence of timeslots. This isknown in the art as time division multiplexing.

In contrast to telephones, computers send data in bursts (e.g. a Webserver might send a page at 1 Mbits⁻¹ for a few milliseconds once everyminute on average). Reserving 1 Mbits⁻¹ permanently for communicationfrom a computer would be inefficient. For this reason, dedicatedcomputer networks offer a different type of service. They do not reservecapacity for a user, but instead offer a service where the resources ofthe network (or at least a proportion of those resources) are sharedindiscriminately between network users. This is known in the art asstatistical multiplexing.

The last two decades have seen the introduction of so-called‘integrated’ networks which are designed to carry both computercommunications and telephony. The capacity of those networks thereforeneeds to be allocated between users who require a constant bit-rate forthe duration of a communication (e.g. telephone users) and those who cantolerate some variation in the bit-rate supplied to them by the network(e.g. those transferring web-pages, software or e-mails).

In order to accommodate the different requirements of different types ofcommunication, one type of integrated network, an Asynchronous TransferMode (ATM) network, allows a user to choose between a constant bit-rateservice type (in which an amount of bandwidth they request is allocatedto them for the duration of a session), a variable bit-rate service type(in which a proportion of the available capacity is shared between anumber of users controlled to substantially prevent congestion), and anunspecified bit-rate service type (in which the remaining capacity issimply shared by all users). In the first two types of service, a usercan additionally specify the amount of bandwidth he or she wishes tohave available. Note that ‘service’ is to be distinguished from ‘servicetype’—a specification of a required service will include both a servicetype and an indication of the amount of network resources required bythe user.

Similarly, another type of integrated network, an Internet Protocol (IP)network, can also offer a constant bit-rate service type (using theResource Reservation Protocol (RSVP)), and a best efforts service typewhich approximates to the unspecified bit-rate service offered by ATMnetworks. Another service type gives packets sent by one class of userspriority over packets sent by another class of user. Using RSVP, a usercan additionally specify the amount of bandwidth he or she wishes tohave available.

In summary, integrated networks offer their users the ability to specifythe service which they wish to receive from the network (which, being anintegrated network, can offer a plurality of different services). Thisspecification can be made once at the start of a communication (thenormal procedure in networks offering a connection-oriented service,such as ATM networks) and/or repeatedly during a communication.

Where a person has to make such a service specification many timesbecause he or she is involved in a number of different communicationsand/or has to make a plurality of service specifications during acommunication, it is beneficial if that specification is made on thatperson's behalf by a computer programmed to act as that person's agent.

An example of a computer programmed in this way is found in PCTapplication number WO 01/52475. That application describes how aweb-server programmed by a content provider requires indicates, in a‘bid’, how much the content provider is prepared to pay for threedifferent amounts of constant-bit rate resource for the following thirtysecond reservation period. That bid is then made repeatedly at thirtysecond intervals throughout the communication. The resources of thenetwork are then allocated between communications by a bandwidth brokercomputer which receives current bids from all those requiring reservedcapacity on the network.

This arrangement is deficient in that the web-server is unable to giveany indication of the type of service the content provider requires fromthe network. This leads to an inefficient allocation of networkresources and means that the programmed computer can only be used withnetworks which offer a constant bit-rate service type for apredetermined reservation period.

European Patent application 0 848 560 and U.S. Pat. No. 6,104,720 bothdisclose an apparatus which selects between a plurality of service typesin accordance with Quality of Service parameters input by a user. TheQoS parameters considered include throughput, packet loss, latency andjitter.

According to a first aspect of the present invention, there is provideda method of selecting a network service from a plurality of networkservices available for a communication, said method comprising:

storing utility data representing the utility of one or morecorresponding levels of communication resource provided for saidcommunication during said communication;

storing an indication of the stability in the amount of saidcommunications resource provided for a communication by one or moreservices offered by said network;

calculating, from said service stability data, one or more measures ofthe likelihood of a predetermined variation occurring in the amount ofresource provided for said communication by a service at a future timeduring said communication;

selecting, in dependence upon said likelihood measures and said utilitydata, a network service for said communication.

By calculating the expected utility offered by candidate networkservices from service stability data and utility accumulation rate datafor different levels of communication resource, a more efficient methodof allocating a network's resources between calls than has hitherto beenachieved is provided.

Utility is here meant in an economic sense—i.e. the utility of a servicerepresents the price a purchaser is prepared to pay for that service.Where a service is charged for per unit time, the utility accumulationrate may be used.

Utility represents a preferred measure of the importance of a service toa person requiring that network service. The demand for money or money'sworth from the person requiring the communication results in that persongenuinely indicating the importance of the service to him or her. Whereother indications of importance are used, a user may just indicate thatall communications he or she requires are of high importance.

The present invention is useful both in situations where said selectionstep involves a determination of what service to request for saidcommunication and where said selection step involves a determination ofwhat service to provide for said communication.

Preferably, said service stability data comprises data defining aprobability density function defining the likelihood of a variable lyingwithin a range of values at a time after said selection, wherein saidvariable determines the amount of resource provided for a communicationby a service. The variable might represent the amount of bandwidthavailable for said communication in a variable-bandwidth service or theprice of a dynamically-priced service.

A dynamically-priced service is one where constant bit-rate reservationscan be made, but for a predetermined reservation period that is shorterthan the duration of many communications. Furthermore, the cost ofreserving that bandwidth may change from one reservation period to thenext.

Preferably, the maximum of said probability density function is set tothe value of said variable at the time of said selection. This embodiesan assumption that it is more likely that the amount of resource or theprice of a fixed amount of resource will stay the same than it is thatany other specific variation will occur. Alternatively, the probabilitydensity functions could reflect the time-of-day at which thecommunication is made.

In other embodiments which involve prediction, said utility datacomprises utility accumulation data which might itself comprise one ormore utility accumulation rates.

Preferably, in embodiments involving prediction and using utilityaccumulation rates as indicia of the importance of a given service, saidutility accumulation data comprises one or more utility indications eachcomprising a transmission rate and an associated utility accumulationrate for that rate;

said likelihood calculation involves calculating measures of thelikelihood of said service type providing said communication with saidtransmission rate at said future time; and

said selection involves calculating an expectation of the surplus whichwould be accumulated by said communication over a predetermined periodwere said service type to be selected, the calculation of saidexpectation involving calculating the sum of the products of saidlikelihood, the associated utility accumulation rate and the duration ofsaid predetermined period.

The predetermined period may either be:

i) the duration of the communication if the selection is made at thestart of the communication; or, where the selection is made during thecommunication:

ii) a known reservation period; or

iii) the duration of the remainder of the communication.

Where data associating the resources provided to the user with a utilityaccumulation rate is available, it is possible to calculate anexpectation of the surplus that will be accumulated over saidpredetermined period for variable-bandwidth services (i.e. serviceswhich involve statistical multiplexing of a plurality ofcommunications), constant bit-rate services and dynamically-pricedservices. Hence, the utility (expected to be accumulated over saidpredetermined period) of a communication supported by each of thesetypes of services can be calculated. This enables a comparison of any ofthose service types with one another and the selection of the servicetype which best suits the requirements of the person (or his agent)requesting the communication.

In preferred embodiments, the expected surplus additionally takes intoaccount a penalty the user associates with moving from one transmissionrate to another. Penalties might only be associated with drops inbandwidth or might be associated with increases in the amount ofbandwidth allocated to a communication as well. The penalties may takethe form of a one-off cost to be subtracted from the expected surplus.

According to a second aspect of the present invention there is provideda network service selection apparatus comprising:

a storage medium having recorded therein processor readable codeprocessable to select a network service for a communication, said codecomprising:

stability desirability data reading code processable to read one or morestored utility accumulation rates representing the utility of one ormore corresponding levels of communication resource provided for saidcommunication during said communication;

likelihood calculation code processable to calculate, from storedservice stability data representing an indication of the stability inthe amount of said communications resource provided for a communicationby one or more services offered by said network, one or more measures ofthe likelihood of a predetermined variation occurring in the amount ofresource provided for said communication by a service at a future timeduring said communication; and

network service selection code processable to select, in dependence uponsaid likelihood measures and said one or more utility accumulationrates, a network service for said communication.

According to a third aspect of the present invention, there is provideda program storage device readable by a processing apparatus, said deviceembodying a program of instructions executable by the processor toperform the steps of the method according to the first aspect of thepresent invention.

According to a fourth aspect of the present invention, there is provideda method of selecting, during a communication, a network service from aplurality of network services available for said communication, saidmethod comprising:

storing stability desirability data representing the importance ofstability in the amount of communication resource provided for saidcommunication during said communication;

identifying the service currently being provided for said communication;

selecting, in dependence upon said stability desirability data and saididentified service, a network service for some or all of the remainderof said communication.

This has the advantage of making the likelihood of in-session switchingdepend upon the importance that the user attaches to stability in theamount of communications resource he receives from the network.

In this fourth aspect, the stability is, at least in part, determined bythe selection. For example, if a purchaser is paying for 300 kbits⁻¹ ofreserved bandwidth prior to a selection between 100 kbits⁻¹, 300 kbits⁻¹and 500 kbits⁻¹ services for the next part of the communication, thedata representing the stability requirement might determine whether thepurchaser continues to receive 300 kbits⁻¹ or not.

According to a fifth aspect of the present invention, there is provideda method of selecting network services from a plurality of networkservices available for a communication, said method comprising:

storing stability desirability data representing the importance ofstability in the amount of communication resource provided for saidcommunication during said communication; and

selecting, in dependence upon said stability desirability data, networkservice for said communication.

The present inventors have realised that a single characteristic, thedesirability of stability, distinguishes the desirability of a largenumber of network services. By quantifying a communication's requirementfor stability in the amount of resource provided for it, it is possiblefor a programmed computer to select the most appropriate service forthat communication from a network that offers many different services.This enables a more efficient allocation of the resources of thatnetwork between communications having different requirements.

Furthermore, quantifying the desirability of stability enables the samecomputer program and stability desirability data to be used forcommunications over a variety of networks. This reduces the technicaleffort that goes into producing bespoke programs for networks offeringdifferent services. It might also reduce the amount memory required tostore such programs (since one copy of the program can control networkservice selection for a variety of networks). Yet further, a personwishing to send a similar communication over a plurality of networksneed only generate one specification of the service they require forsuch similar communications.

In one set of embodiments, said method further comprises the step ofstoring an indication of the stability in the amount of saidcommunications resource provided for a communication by one or moreservices offered by said network, wherein said selection step involvesdetermining from said service stability indication and said stabilitydesirability data a network service for said communication.

This enables the stability that will be obtained for a communication tobe predicted—enabling a selection of a suitable network service for saidcommunication prior to the start of said communication.

Preferably, said method further comprises the step of calculating, fromsaid service stability data, a measure of the likelihood of apredetermined variation occurring in the amount of resource provided forsaid communication by a service at a future time during saidcommunication.

This has the advantage of simplifying the processing involved inselecting a suitable network service and thereby reducing the load onthe processing resources of a computer programmed to perform the abovemethod.

By way of example only, specific embodiments of the present inventionwill now be described with reference to the accompanying Figures inwhich:

FIG. 1 shows an internetwork in which a first embodiment of the presentinvention is implemented;

FIG. 2 shows a regional cable network portion of the internetwork ofFIG. 1 in more detail;

FIG. 3 shows a regional Digital Subscriber Loop network portion of theinternetwork of FIG. 1 in more detail;

FIG. 4 shows quality of delivery policy data generated by a contentprovider for a content file;

FIG. 5 shows the flow of messages between devices in a sessioninitiation phase of the first embodiment;

FIG. 6 shows the flow of messages between different devices of FIG. 1 ina first part of a content file request phase of the first embodiment;

FIG. 7 shows a user/content-specific quality of delivery specificationgenerated following the first part of a content file request phase ofthe first embodiment;

FIG. 8 shows the flow of messages between devices in a second part of acontent file request phase of the first embodiment;

FIG. 9 illustrates a probability density function of the bandwidthavailable within a one of a plurality of variable-bandwidth serviceoffering from the regional cable network at a time T after bandwidthb_(i) was available for each user of that service;

FIG. 10 illustrates a probability density function of the pricerequested for a dynamically-priced service offering from the DSL networkoperator at a time T after price $_(i) was requested;

FIG. 11A shows network service data stored at the bandwidth brokercomputer of the cable network of FIG. 2;

FIG. 11B shows network service data stored at the bandwidth brokercomputer of the DSL network of FIG. 3;

FIG. 12 shows a process for building a blacklist of service offeringsunsuitable for the current content file delivery;

FIGS. 13A and 13B show processes for calculating, at the start of thedelivery, the probability of a premature delivery cessation forvariable-bandwidth and dynamically-priced services respectively;

FIG. 14 shows an initial service selection process carried out by thebandwidth roker computer at the start of the delivery of a content file;

FIG. 15 shows a process for calculating the session surplus for eachindicated service when a constant bit-rate service offering is used todeliver a content file;

FIG. 16 shows a process for evaluating the session surplus for eachindicated service when a dynamically-priced service offering is used todeliver a content file;

FIG. 17 shows a process for evaluating the session surplus for eachindicated service when a variable-bandwidth service offering is used todeliver a content file;

FIG. 18 shows the calculation of expected penalised second-half sessionsurplus used when considering using a variable-bandwidth serviceoffering or a dynamically-priced service offering for the first half ofa content file delivery;

FIG. 19A shows the calculation of expected penalised second-half sessionsurplus where a dynamically-priced service offering is used for thesecond half of a content file delivery;

FIG. 19B shows the calculation of a sequence of indicated servicesfollowed by a purchaser using a dynamically-priced service offering inresponse to the price of bandwidth in that service rising;

FIG. 19C shows the calculation of the probability of a purchaserchoosing an indicated service for the second-half of a content filedelivery assuming that a dynamically-priced service offering is used inthe second-half;

FIG. 20A shows the calculation of expected penalised second-half sessionsurplus where a variable-bandwidth service type is used for the secondhalf of a content file delivery;

FIG. 20B shows the calculation of a sequence of indicated servicesfollowed by a purchaser using a variable-bandwidth service offering inresponse to the amount of bandwidth available for a content filedelivery rising;

FIG. 20C shows the calculation of the probability of a purchaserchoosing an indicated service for the second-half of a content filedelivery assuming that a variable-bandwidth service offering is used inthe second-half;

FIG. 21 shows the selection of a service type at a subsequent serviceselection point during the delivery;

FIG. 22 shows a process used to evaluate a penalised session surplus foreach indicated service when a constant bit-rate service offering is usedimmediately after the subsequent service selection point; and

FIG. 23 shows a process used to evaluate a penalised session surplus foreach indicated service when a variable-bandwidth service offering isused immediately after the subsequent service selection point.

FIG. 1 shows an internetwork comprising a content provider's local areanetwork 100, a regional cable network 140, a regional Digital SubscriberLoop network 180, and a portion of the global Internet 120 whichinterconnects all three.

The content provider's network 100 comprises a content provider's Webserver 102 and origin video server 104, an Internet router 106 and a LAN108 interconnecting them.

The regional cable network is illustrated in more detail in FIG. 2. Theregional cable network 140 comprises a hybrid fibre/co-axial (HFC) cablenetwork 142, a regional head end 170 which connects the regional cablenetwork to the global Internet 120, a regional fibre network 150, acaching network 144, a Layer 4 switch 148 and a Cable Modem TerminationSystem (CMTS) 146 which interconnects the Layer 4 switch 148 and the HFCcable network 142. The Layer 4 switch interconnects the regional fibrenetwork 150, the caching network 144, and the CMTS 146. A suitable CMTSis the Cisco uBR 7246 which operates in accordance with a pre-standardversion of the DOCSIS (Data Over Cable Service Interface Specification)standard version 1.1. The Cisco uBR 7246 also schedules IP packets whichtransit it in accordance with the value of the so-called DifferentiatedServices (DS) field in the IP packet header (see the InternetEngineering Task Force's Request For Comments (RFCs) 2474 and 2475 fordetails of the DS field).

The HFC network 142 comprises a large number of sets of user equipment(152-156), a plurality of co-axial cable networks 157 serving around 700homes each, a fibre ring 158, and a number of fibre nodes 160, each ofwhich connects the fibre ring 158 to one of the co-axial cable rings157. Each set of user equipment (152-156) comprises a Toshiba PCX 1100cable modem 154 (a pre-standard DOCSIS 1.1-compliant cable modem), aPersonal Computer (PC) 152, a cable 153 leading from the modem 154 tothe PC 152, a cable 155 extending from each set of user equipment to atap 156 on the co-axial cable ring 157.

The caching local area network 144 comprises an agent computer A1, acontent file caching server C1, a shaper/marker 164, a bandwidth brokercomputer B1, and a Local Area Network 162 which interconnects them. TheLocal Area Network 162 operates in accordance with the Institute ofElectrical and Electronics Engineers (IEEE) 802.3 standard at a rate of100 Mbits⁻¹. The 155 Mbits⁻¹ Lucent Access Point 1000 (AP1000) suppliedby Lucent Technologies Inc., 600 Mountain Avenue, Murray Hill, N.J., USAwould provide a suitable shaper/marker ability.

In accordance with a first embodiment of the present invention, the CMTS146 is configured as follows. Three diff-serv codepoints (say 111000,110000, and 000000) are chosen to represent top-priority traffic,mid-priority traffic and best effort traffic respectively. The CMTS/IPRouter 146 is able to offer each type of traffic simple priority overtraffic of the next lowest level of priority.

The IP router component of the head end 170 is configured to reset (to000000) the DS fields of packets arriving over the Internet link 9 whichhave their DS field set to a value which is equated to any otherpriority level than best effort.

The agent computer A1 is provided with a HyperText Transfer Protocolclient program which is configured to use the caching server computer C1as a proxy (in other words, HTTP requests from the agent computer willbe received by the caching server computer C1 and forwarded if thecaching server computer itself cannot satisfy the request. HTTPresponses to those requests will be received by the caching servercomputer and forwarded to the agent computer A1).

The regional Digital Subscriber Loop Network (FIG. 3) comprises a user'spersonal computer 10, an ATM network 2, a cable 12 connecting the user'sPC 10 to the ATM network 2, an Internet Service Provider's (ISP's) localarea network 4, a Broadband Access Server (BAS) 6, an ATM network link 5which connects the BAS 6 to the ATM network 2 and an ISP network link 7which connects the BAS 6 to the ISP's local area network 4. In thepresent embodiment the BAS is provided by a modified Nortel NetworksShasta 5000 Broadband Service Node. The ISP's local area network 4 isconnected to the Internet 120 via an Internet link 9. A charging server28 is connected to the BAS 6 via a router 32 and a Local Area Network31.

The ATM network 2 comprises a large number of sets of user equipment(11, 13 14), pairs of copper wires 16 extending from each set of userequipment (11, 13, 14) to a local exchange 20, exchange-housed equipment(17,18) housed in the local telephone exchange building 20 and awide-area switched network 22 which connects a plurality of such DSLAMs18 (there is normally one or more DSLAMs per exchange building, only oneexchange building is shown in the drawing) to the BAS 6. As will beunderstood by those skilled in the art, the exchange-housed equipmentincludes a Digital Subscriber Line Access Multiplexer (DSLAM) 18 sharedbetween many users and, for each pair of copper wires 16, a splitterunit 17 which terminates the pairs of copper wires 16. The splitter unit17 is effective to send signals within the frequency range used fornormal telephony to the Public Switched Telephone Network (not shown)and to send signals in higher frequency bands to the DSLAM 18. Each setof user equipment (11, 13, 14) comprises a splitter unit 14 in acustomer's premises which incorporates an Asymmetric Digital SubscriberLine (ADSL) modem 13. The splitter unit 14 is effective to send signalswithin the frequency range used for normal telephony to the user'stelephone 11 and to send signals in higher frequency bands to the ADSLmodem 13. The ADSL modem 13 represents the network termination point ofthe ATM network 2. Cable 12 leads from the modem 13 to the PC 10.

The ISP's local area network 4 comprises an IP router 24, a cachecomputer C2, an agent computer A2, a bandwidth broker computer B2, and aLocal Area Network 30 which interconnects them. The previously mentionedInternet link 9 is connected to the IP router 24. The Local Area Network30 operates in accordance with the Institute of Electrical andElectronics Engineers (IEEE) 802.3 standard at a rate of 100 Mbits⁻¹.

That capacity, the capacity of the ISP link 7 and the ATM network 2 issufficient to ensure that the rate of transmission of a stream ofpackets between the caching computer C2 and the personal computer 10 isdetermined by the BAS 6.

It is to be understood that each of the elements of the internetwork(FIG. 1) operates in accordance with version 6 of the Internet Protocol(IP). Furthermore, at least the caching computer C2 offers thedifferentiated services extensions to the UNIX sockets interface, or anyother programming interface that enables the setting of theDifferentiated Services (DS) field in the IP packet header.

In accordance with a first embodiment of the present invention, the ATMnetwork (FIG. 3) is configured by the ATM network operator as follows.Firstly, an ATM permanent virtual circuit (PVC) is configured betweenthe BAS 6 and each of the modems it serves. The PVC is a constant bitrate (CBR) connection whose peak cell-rate is set to 2 Mbits⁻¹. The ATMnetwork operator also configures each PC 10 with an IP address.Thereafter a table associating the IP address of each PC with a labelthat identifies the PVC which leads to that PC 10 is created in the BAS6 by manual or automatic methods that are well-known to those skilled inthe art.

In a conventional manner, the BAS 6 receives a frame constructed inaccordance with the link-layer protocol used over the ISP link 7. Thelink-layer header and/or trailer is then removed from the frame to leavea packet constructed in accordance with the Internet Protocol.

The BAS 6 forwards the packet in a manner which depends upon the DSfield of the IP packet header. Thus, a packet may be provided with aconstant bit-rate service (where a given amount of bandwidth is reservedfor the delivery of the content file), or a best efforts service. Onsending packets over the interface, a (Point-to-Point Protocol) PPPlink-layer interface header and trailer are added a frame constructed inaccordance with the PPP link-layer protocol. The frame thus constructedis then passed through the ATM Adaptation Layer 5 (AAL5) segmentationprocess in which it is split into ATM cells and sent onto the ATM PVCconnection.

Similar processes are carried out for each packet being received fromthe link-layer interface to the ISP link 7.

The router 24 is configured to reset (to 000000) the DS fields of allpackets arriving over the Internet link 9.

Returning now to FIG. 1, the content provider's Web server computer 102is provided with a web server program, and a program for preparingdelivery policies for content files.

The web server program controls the Web server computer 102 to sendweb-pages requested by a user to that user and to gather informationabout users in order to enable the quality of the delivery provided to auser to depend upon the user's identity. In the present embodiment, thisis achieved by asking users to fill in a HyperText Mark Up Language(HTML) form in order to register with the web-site. The form asks theuser for a user name and password and various other data such as theuser's age, gender, nationality and occupation category. The informationprovided is used to assign a user to a user class. A table giving theclass of each user is stored at the Web server 102. Those skilled in theart would be able to write a suitable Web server program.

Using the program for preparing delivery policies for content files, thecontent provider also creates a delivery policy (FIG. 4) for eachcontent file. The program asks the content provider to indicate:

i) the name of the content file;

ii) the format of the content file;

iii) the duration of the content file in seconds;

iv) for each class of delivery, the maximum risk of premature deliverycessation which the purchaser considers acceptable;

v) for each class of delivery, for each of one or more indicatedservices (in the present case, the choice of services to indicate (i.e.to list) is made by the purchaser and each indicated service isspecified by a transmission rate), a utility accumulation rate (inpence/sec) representing how valuable that indicated service is to thecontent provider;

vii) for each of the one or more indicated services a one-off utilitypenalty (in pence) occasioned by the transmission rate offered by thenetwork dropping such that the rate drops to the rate associated withthe immediately lower indicated service, including the penaltyassociated with dropping from the lowest rate to no transmission at all.In fact an indicated service of zero bandwidth is assumed which offersthe user no utility.

In the present example, for each class of delivery, the user inputsparameters for three indicated services, namely—400 kbits⁻¹, 250 kbits⁻¹and 100 kbits⁻¹. The delivery policy generation program then produces adata structure containing the data seen in FIG. 4—the penaltiesassociated with a drop through more than one indicated service arecalculated by the delivery policy generation program from the penaltiessupplied by the content provider.

Those skilled in the art will have no difficulty in providing a programto collect the above data and generate the delivery policy datastructure shown in FIG. 4.

Once created the content provider stores the delivery policy at a URLhaving a predetermined relationship to the content file's name—forexample the content provider owning the domain name cp.com might storeits delivery policy file for the content filewww.cp.com/latest/gladiator.rm at:

http://www.cp.com/qospolicy/latest/gladiator.rm

The content provider then includes the URLs pointing to its deliverypolicy files in the list of files which it wishes to be copied tocaching servers such as caching server C1 in the regional cable network(FIG. 2) and caching server C2 in the DSL regional network (FIG. 3). Aswill be understood by those skilled in the art, content distributorsoffer a service in which they copy specified files from an origin serverto caches around the world. In the present embodiment, use of such aservice results in the content files stored on origin video servercomputer 104 being copied to the caching servers C1 and C2, togetherwith the content provider's delivery policy files associated with thosecontent files.

FIGS. 5, 6, 7 and 8 illustrate the operations carried out by thecustomer's PC 152, the content provider's origin Web server O, and thecable network's (FIG. 3) agent computer A1, caching server C1 andbandwidth broker B1 in carrying out the method of the presentembodiment. In fact, the steps carried out by the personal computer 152are carried out under the control of a conventional browser program suchas Netscape's Navigator version 4.

FIG. 5 shows the steps involved when a previously registered user at PC152 browses the home page of the content provider. The home pageincludes a form as provided for by HyperText Mark Up Languages HTML 2.0and above. As will be understood by those skilled in the art, the formas presented to the user has text fields into which the user must enterhis user name, and a submit button. The HTML file representing theweb-page will also contain a URL which points to a Common GatewayInterface script (i.e. an executable program) and a further indicationparameter not displayed to the user that indicates the web-page has beengenerated for a registered client of the caching server operator. Whenthe user clicks on the submit button, the browser program running on thePC 152 sets up a Transmission Control Protocol (TCP) connection to theLayer 4 switch 148 and sends a HyperText Transfer Protocol (HTTP) GETrequest across that TCP connection (step 1). The layer 4 switch 148 isconfigured to redirect all requests destined for the default ports usedfor each content file type to the cache (e.g. port 80 for http and port554 for rtsp). This avoids the browser program stored on the PC 152having to be configured to point to the caching computer C1. The GETrequest is accompanied by the user name and the indication parameter.The Layer 4 switch 148 recognises the TCP port value in the GET requestand hence forwards the request to the caching server C1. A plug-inprogram on the caching server C1 recognises that the request must beforwarded to the origin server O and, since the indication parameter ispresent (the indication being the indication cache_service_client=truewhich forms part of the Universal Resource Locator (URL) in the originalGET request), appends an indication of the agent computer A1, appendsthe user's IP address and then sets up a further TCP connection to theorigin Web server O and passes the modified GET message across thatconnection (step 2).

The origin Web server O receives the GET message and the appended username, client indication, and agent identifier. In response, it runs theassociated CGI script which causes it to:

a) fetch from the user database the user class, and then send that userclass and an indication of the user's current Internet address to theagent computer A1 identified by the agent identifier in the receivedmessage (step 3); and

b) send an HTML file representing a registered user menu page to the PC152 (step 4). The HTML file includes one or more hyperlinks to contentfiles previously copied to the caching server C1 by a contentdistributor as described above.

On receiving the user class message, the agent computer A1 stores theuser class along with the user's current IP address.

Once it is received, the user's PC 152 presents the HTML file as aregistered user menu page on the screen of the PC 152. The registereduser menu page includes one or more hyperlinks which are associated withcontent files stored on the caching server C1.

Turning now to FIG. 6, on the user selecting one of those hyperlinks, anRTSP SETUP request is sent to the Layer 4 switch 148. As before, theHTML file includes a HTML form which causes a further registered clientindication to be included in the SETUP request. The Layer 4 switch 148recognises the TCP port in the request and hence forwards the request tothe caching server C1 (step 5). On receiving the SETUP request, theplug-in program at the caching server C1 responds to the presence of thefurther registered client indication by controlling the caching serverC1 to send a content file transfer parameters message to the agentcomputer A1 which includes the URL of the requested content file, valuesof the user's TCP port and IP address, and the origin server's TCP portand IP address (step 6).

On receiving the content file transfer parameters message the agentcomputer A1 fetches the delivery policy (FIG. 4) associated with thecontent file identified in the content file transfer parameters message(step 7).

The agent computer A1 then looks up the stored user class (which itreceived in step 3) associated with the IP address received in thecontent file transfer parameters message (received in step 6).

The agent computer A1 then selects the set of class-specific quality ofdelivery parameters which corresponds to the stored user class from thedelivery policy file received in step 7. The selected set is thenincorporated in a quality of delivery specification for this specificUser/Content-File combination (FIG. 7) which is forwarded (FIG. 8—step8) to the bandwidth broking computer B1.

For variable-bandwidth service offerings, the amount of bandwidthavailable for a delivery of a content file will either stay the same,decrease or increase. However, the amount of bandwidth offered cannotdecrease below zero. Equation 1 below is a probability density functionwhich, for a variable-bandwidth service offering which offers bandwidthb_(i) for a delivery at time t=0 can be integrated over a bandwidthrange between a lower bandwidth and an upper bandwidth to give theprobability of the bandwidth being in that bandwidth available for adelivery range after a given time period T. $\begin{matrix}{{p_{n}(b)} = {c\quad\frac{b^{2}}{\sqrt{kT}}{\mathbb{e}}^{\frac{- {({b - b_{i}})}^{2}}{kT}}}} & {{Equation}\quad 1}\end{matrix}$

C is chosen so that: ∫₀^(∞)p_(n, T)(b)𝕕b = 1

The value k in the above expression is a volatility index whichexpresses the volatility in the amount of bandwidth the service offeringsupplies to a user—higher values of k represent greater volatility.

FIG. 9 illustrates the form of the above probability density functionwhich represents the likelihood of a bandwidth b being offered at a timeT after an amount of bandwidth b_(i) was offered. As will be understoodby those skilled in the art, the area under the curve up until the linelabelled bm represents the probability that less bandwidth than b_(m) isavailable at time T. The ‘width’ of the peak of the distribution growsas the square root of time.

An analogous probability density function can be used to model thevariation of price in a dynamically-priced service offering. FIG. 10shows such a probability density function, including examples ofso-called marginal prices at which the content provider (or otherpurchaser) would choose to move between services indicated in thequality of delivery policy (FIG. 4). $_(3|2) for example, represents theprice below which the purchaser would choose the highest of threeindicated services in preference to the other indicated services andjust above which the purchaser would choose the second highest indicatedservice.

It is to be noted that FIG. 10 represents a simple situation. In FIG.10, the lowest marginal price is that at which the indicated serviceobtained by the purchaser drops from the highest indicated service tothe next highest indicated service. That behaviour is seen when the unitvalue of bandwidth decreases with increasing bandwidth—however, in someindications a purchaser may place an increasing value on a unit ofbandwidth as bandwidth increases.

The bandwidth broking computer B1 stores network data (FIG. 11A)specific to the regional cable network. The network data indicates thedifferent service offerings (first row) which are available in the cablenetwork, and the bandwidth currently available to a user of each serviceofferings (fifth row), together with the price of bandwidth (fourth row)in each service. Also indicated is the type of each of the serviceofferings (third row). A service offering number is associated with eachof the services (second row). Finally, the value of the volatility indexto be used in obtaining the probability density function which describesthe amount of bandwidth at a time T after bandwidth b_(i) was availableis given for each of the service offerings (sixth row).

In the present example, the data (FIG. 11A) indicate that the cablenetwork offers a high-priority (Priority 1) service offering, amid-priority (Priority 2) service type and a best-effort service type.All three services are variable-bandwidth services—the volatility of theservices increasing in the above order.

In contrast, the network data (FIG. 11B) stored at the bandwidth brokercomputer B2 of the DSL network (FIG. 3) indicates that the DSL networkoffers two service offerings, the first being of the constant bit-ratetype and the second being of the dynamically-priced type. As with thecable network, the price of bandwidth and the amount of bandwidthavailable to a user are given. Also given is the volatility of the priceof the dynamically-priced service offering.

FIGS. 12 to 23 are flow charts illustrating the operation of a computerunder the control of a ‘generic’ network service purchasing agentprogram—the program is ‘generic’ in the sense that it can select betweenconstant bit-rate, variable bandwidth and dynamically-priced services.In the present embodiment, the program is executed by a network'sbandwidth broker computer (B1 or B2) when that computer receives aquality of delivery specification from the local agent computer (A1 orA2).

On receiving the quality of delivery specification (FIG. 7) for thiscontent file/user combination (FIG. 8, step 8) the bandwidth brokercomputer generates a blacklist of those service offerings available fromthe network which do not meet the acceptable risk requirement as out inthe quality of delivery specification.

The generation of the blacklist (FIG. 12) begins with the setting out ofthe list of known network service types (step 220).

The process then enters a loop of instructions (step 224 to step 246),each iteration of that loop involving the carrying out of a serviceoffering evaluation process.

The service offering valuation process begins with a check to findwhether the nth service offering by the network is of a recognised type(step 226). If it is not included in the service type list generated instep 220 then the bandwidth broker computer (B1 or B2) reports thepresence of an unknown service type (step 228). If the service type isrecognised then a test (step 230) is carried out to find whether theservice is of a constant bit rate type. If it is, then the processproceeds to the next iteration of the loop (if any). If the nth serviceis not of a constant bit rate service type then a further test iscarried out to find whether it is a dynamically-priced service offering(step 232). If it is a dynamically-priced service offering then aprocess (step 234) is followed to calculate the probability of thedelivery of the content file ceasing prematurely. If the nth serviceoffering is not dynamically priced then a test is carried out (step 236)to find whether the service offering is a variable bandwidth serviceoffering. If the service offering is a variable bandwidth serviceoffering then a process (step 238) is carried out to find theprobability of the delivery of the content file ceasing prematurely ifthat service offering were to be used in delivering the content file.

Once the probability of premature cessation of delivery has been found,a test (step 240) is carried out to find whether that probability isgreater than the acceptable risk set out in the quality of deliveryspecification received from the agent computer. If the risk is higherthan the maximum acceptable risk then the nth service offering is addedto a blacklist of services which present a greater risk of prematuredelivery cessation than the purchaser is prepared to countenance (step242). If the risk is less then the maximum acceptable risk then the nextiteration of the loop (if any) is carried out.

The process for calculation the probability of premature cessation ofdelivery when a variable bandwidth offering service is used will now bedescribed in more detail with reference to FIG. 13A. The process beginswith a check (step 250) to find whether the level of bandwidth currentlyavailable (b_(n)) from this (nth) service offering for a delivery isless than the lowest non zero indicated service in the quality ofdelivery specification (FIG. 7). If the currently available amount ofbandwidth for the delivery is less than the lowest non zero indicatedservice then the probability of the delivery ceasing prematurely is setto one (step 252). If, on the other hand, the amount of bandwidthcurrently available for a delivery is greater than the lowest non zeroindicated service then a calculation of the probability of prematurecessation of the delivery is made (step 253). That calculation beginswith the setting of the value k in the probability distribution functiongiven above to the value found in the network data (FIGS. 11A and 11B)and the setting of the parameter T in the function to the duration D ofthe delivery as given in the quality of delivery specification. Themultiplying factor C is then calculated to ensure that the integral ofthe function over the all possible values of available bandwidth isequal to one. Having substituted the multiplication factor C, thevolatility k, and the duration D into the probability density functiongiven above, the resulting function is integrated between a bandwidth ofzero and the lowest non zero indicated service in the quality ofdelivery specification to find the probability of premature deliverycessation. Once the probability of premature delivery cessation has beenfound then the process (FIG. 13A) ends.

As mentioned above, when provided with a dynamically-priced service, arising price will cause the rate at which the user accumulates surplus(where surplus accumulation rate=utility accumulation rate−price ofreserved bandwidth) to drop. Normally, the utility accumulation rate perunit of bandwidth drops as the amount of bandwidth provided to thepurchaser increases (so the seller of the bandwidth sees diminishingreturns with rising bandwidth). Since the allocation of bandwidth ismade for a predetermined period, the surplus gained per predeterminedperiod from operating at the higher indicated bandwidths also drops asbandwidth rises (for a given price per unit time per unit bandwidth).Hence, where allocation is made on the basis of allocating a purchaserthe service which offers the highest surplus for the next predeterminedperiod and the seller sees diminishing returns with increasingbandwidth, the amount of bandwidth reserved for the purchaser will fallfrom the highest indicated bandwidth and then through each lowerindicated bandwidth in turn as the price of bandwidth rises.

But, in some circumstances, a seller would see increasing returns as theamount of bandwidth supplied to a purchaser rises. For example, if thehighest indicated bandwidth represents the highest unit value ofbandwidth to the purchaser, then the highest surplus will be obtainedfrom receiving the highest level of indicated bandwidth until the pricerises above the unit value of bandwidth at that highest level, at whichpoint the other indicated bandwidths will offer a negative surplus.Hence, where allocation is made on the basis of allocating a purchaserthe service which offers the highest surplus and the seller seesincreasing returns with rising bandwidths, the bandwidth reserved forthe purchaser will fall in one step from the highest level of bandwidthto nothing in one step as the price of bandwidth rises.

When determining the probability of a delivery made using avariable-bandwidth service ceasing prematurely, it is necessary first toestablish the indicated service which can return a positive surplus athigher prices than any other indicated service (since it is cessation ofthis indicated service that will cause cessation of the delivery as awhole).

The process for calculating the probability of premature deliverycessation carried out by the bandwith-broking computer will now beexplained with reference to FIG. 13B.

The calculation of the risk of premature delivery cessation begins withthe setting of a maximum unit value to zero (step 254). This is followedby the setting of an indicated service counter to one (step 255). Oncethis has been done, a loop is entered which is iterated as many times asthere are non-zero indicated services (in the present case there arethree levels—the zero indicated service is referred to herein as m=0,the next highest m=1 and so on to m=3). In each iteration of the loop aset of maximum unit value discovery instructions is carried out (step256 to step 259).

The maximum unit value discovery instructions begin with the calculationof the unit value associated with the mth level of indicated service(step 256). Once this has been done, a test (step 257) is carried out tofind whether that unit value is greater than the maximum unit value sofar discovered. If the value is not greater than the maximum unit valueyet discovered then the next iteration of the loop is carried out.However, if that value is greater than the maximum unit value yetdiscovered, the maximum unit value is updated to equal the unit valuejust calculated (step 258) and a variable m_(apex) is set to the currentvalue of m (step 259). Once the above loop of instructions has beencarried out as many times as there are indicated services the maximummarginal price is calculated (step 262). The maximum marginal price isthe price above which the current delivery will not receive anybandwidth from the dynamically-priced service offering. This price iscalculated as for a conventional marginal price (that being the price atwhich the unit cost exceeds the maximum unit value to the purchaser) butis here adjusted to take account of the fact that a purchaser will beprepared to pay a premium to continue the delivery as the delivery nearsits end.

The adjusted maximum marginal price is therefore calculated as(U(bm_(apex))−(ΔSm_(apex),0/τ))/bm_(apex), where τ is the time-periodfor which the dynamically-priced service offers reservations andΔSm_(apex) is the penalty associated with the amount of bandwidthprovided to the delivery moving from the indicated service which offersthe highest unit value to zero bandwidth. This penalty is found in thequality of delivery specification (FIG. 7). It will be understood thatthe adjustment to the maximum marginal price is that which would occurin the very last reservation period of duration τ required to completethe delivery of the content file.

Having calculated the maximum marginal price i.e. the price at which thedelivery would cease, a test (step 263) is carried out to find whetherthe current price of bandwidth in the dynamically priced serviceoffering being investigated is greater. If it is greater the deliverywill necessarily fail and the probability of premature cessation is setto one (step 264). If, on the other hand, the current price is less thanthe calculated maximum marginal price then a calculation of theprobability premature delivery cessation is made (step 265). Thecalculation begins with the substitution of the volatility index k, theduration of the content file D into the probability density distributiongiven in equation 1 above (but with the random variable being priceinstead of bandwidth). k and Dare obtained from the network data (FIG.11B) and quality of delivery specification (FIG. 7) respectively. Havingsubstituted those values, the value of C which causes the integral ofthe probability density function over all possible prices to equal oneis calculated. Once that has been calculated, the resulting function isintegrated from the maximum marginal price calculated in step 262 up toinfinity. The result of that integration is the probability of thedelivery ceasing prematurely if this dynamically-priced service offeringis used.

Once the probability of premature cessation has been calculated in thisway the process ends.

It is to be understood that the blacklist created by the processdescribed above in relation to FIGS. 12 and 13 might be followed by arandom selection of service from the services which are not blacklisted.This would, by itself, represent an improvement of the known methods ofservice selection.

However, in the present embodiment, the bandwidth broker computerfurther refines its selection of which service to use for acommunication. This is done by predicting, for each service which is notblacklisted, the surplus that is likely to be accrued over the durationof the communication. The process will be described below with referenceto FIGS. 14 to 22.

The process for selecting the service to be used at the start of thedelivery (FIG. 14) is similar to the process for blacklisting certainservices in its top level structure. As with the process for creatingthe blacklist, a loop of instructions (step 274 to step 290) is followedwhich considers each service offering in turn, but rather thancalculating the probability of premature delivery cessation if thatservice should be selected, the session surplus that is likely to beaccrued over the duration of the delivery is calculated instead.

In step 272, a selected service array variable is initialised. Thisarray variable has three fields corresponding to an indicated servicenumber (m), the number of the service offering being considered in thecurrent iteration of the loop (this number being the service offeringnumber given in the network data (FIGS. 11A and 11B)), and a maximumsession surplus variable. These variables are initialised to valueszero, nil, and zero respectively.

The service selection process (FIGS. 14 to 23) calculates the expectedsession surplus gained when taking each indicated service from eachservice offering and updates the selected service array variable when aservice (i.e. a given indicated service from a given service offering)is found which offers a session surplus which is greater than thehighest session surplus for all the services which have previously beenconsidered. At that time the number of the service offering and thenumber of the indicated service stored in the selected service arrayvariable are updated to reflect the values associated with the newlyfavoured service. Hence at the end of the process shown in FIG. 14 theselected service array variable contains an indication of the service tobe used at the start of the delivery together with an indication of thesession surplus that is likely to be accrued from the use of thatservice to make the delivery.

On each iteration of the loop of instructions (steps 276 to step 290), atest (step 283) is carried out to find whether the service offeringcurrently being considered is on the blacklist created in accordancewith the process described above. If the service is on that blacklistthen the current iteration ends and the next service offering (if any)is considered. In this way, it is ensured that the service representedin the selected service array variable at the end of the initial serviceselection process (FIG. 14) will not be a service provided by ablacklisted service offering.

If, the test (step 280) to find whether the service offering currentlybeing considered is a constant bit rate service offering is positivethen a calculation of the session surplus to be expected from eachindicated service when taken from a constant bit-rate service offeringover the duration of the delivery is calculated in step 282. Thiscalculation will now be explained in more detail with reference to FIG.15.

The calculation of session surplus for a constant bit rate serviceoffering is carried out for each of the indicated services in thequality of delivery specification in turn. In this process, the rate ofsurplus accumulation (which equals the rate of utility accumulationminus the rate of expenditure) is multiplied by the duration of thecontent file as given in the quality of delivery specification (step302). A test is then carried out to find whether the session surpluscalculated is greater than the maximum session surplus so far found(step 304). If the session surplus is the greatest so far found then theselected service array variable is updated accordingly (step 306). If,on the other hand, the session surplus is less than that found for apreviously considered service then a further iteration of the loop iscarried out for each of the remaining as yet unconsidered indicatedservices.

In order to provide a measure of the session surplus obtained when avariable-bandwidth service or dynamically-priced service it is supposedthat:

i) the network will continue to provide the initially selected servicefor the first half of the delivery;

ii) at the mid-point of the duration of the delivery, an opportunity toselect a service for the second half of the delivery will be given; and

iii) once the service selection has been made, the network will continueto provide that service for the second half of the delivery.

It is to be noted that, if the proposed change of service at the mid-waypoint of the delivery was supposed to be made on the basis of the samecriteria as the initial service selection, then the proposed serviceselection would have to calculate probabilities of service changes thatmight take place three quarters of the way through the delivery andthose probabilities would in turn depend on probabilities of variousservice changes seven eights of the way through the delivery and so on.In the present embodiment the inventors have overcome this problem byassuming that the mid-way point service selection will be made ondifferent criteria—the criteria used is that the service which maximisesthe instantaneous surplus accumulation rate at that time will be chosen(a penalty is also taken into account here—this is explained below).Furthermore, it is assumed that the service will be maintainedthroughout the second half of the session—so an equivalent assumption isthat the service which maximises the penalised second half surplus willbe chosen.

As mentioned above, the penalised surplus is considered rather than thesurplus itself. The penalised surplus is a surplus value which includesa utility penalty if the indicated service chosen for the second halfdiffers from that chosen for the first half.

That expected penalised second half surplus is found by assuming thatthe indicated service which maximises the penalised second half surpluswill be chosen for the second half of the delivery. The problem then isthat the surplus for the different services cannot be found directlysince the price of a dynamically-priced service offering or thebandwidth available from a variable-bandwidth service offering at themid-way point cannot be known at the start of the delivery.

In the present embodiment, the inventors have overcome that problem bycalculating for any variable bandwidth offering, the ranges of availablebandwidth which would lead to a given service providing the maximumpenalised second half surplus (i.e. which would lead to that servicebeing selected for the second-half). The probability of the bandwidththen being in that range can be found from the above probability densityfunction. By summing the products of the probability of getting a givensurplus and the amount of that surplus, an expected second half surplusfor the variable-bandwidth service offering is obtained.

A similar calculation is made for the dynamically-priced serviceofferings. It is further assumed that the service offering chosen forthe second half will be that which offers the greatest expectedpenalised second half surplus. It is that greatest expected penalisedsecond half surplus which is used in the calculation of expected sessionsurplus for each of the non-blacklisted candidate first half services.

Also, note that if no service offerings are blacklisted then, in thecase of the cable network, there are 3*3=9 possible services for thefirst half (the product of the number of service offerings and thenumber of indicated services). Each of those requires the 9 possibleservices for the second half to be considered. This represents a similaramount of processing to comparing 81 service combinations.

If, instead of assuming a single change of service point at the half-waypoint, the session surplus was predicted by a series of service changepoints at 30 second intervals, then the number of possible combinationsof services used in a delivery lasting for a number (P, say) of 30second reservation periods would be 81^(P). For most deliveries thisleads to an astronomical number of combinations to be considered—hencethe problem of predicting the session surplus might be thoughtintractable. The problem increases in the case of variable bandwidthservices where the bandwidth supplied to a delivery may vary in a timeperiod of a similar length to the time taken to send a packet at thetransmission rate of the link that leads from the store where the packetis held.

The calculation of the expected session surplus where adynamically-priced service offering is used (FIG. 16—which correspondsto step 285 in FIG. 14) carries out 10 a loop of instructions (steps 324to 335) for each of the indicated services in the quality of deliveryspecification (FIG. 7). The loop of instructions (steps 324 to 335)begins with the calculation of the surplus which results from the mthindicated service being provided to the purchaser for the first half ofthe delivery (step 324). Note that $_(n,0) refers to the price ofbandwidth in the nth service offering at the start of the delivery. Notethat the subscript i in the expression S_(i)(m,n) indicates that thesurplus calculated in step 324 relates to the initial half of thedelivery. Once the surplus for the first half of the delivery has beenfound, a calculation (step 326) is carried out to find the expectedpenalised second half surplus that will be obtained in the second halfof the delivery. Note that the caret above the ‘S’ indicatespenalisation. Penalisation will be explained in more detail below withreference to FIG. 18.

Once the surpluses for the first half and second half have been found,the two are added together to give the expected session surplus if themth indicated service is taken from the nth service offering. Once thissum has been calculated, it is compared to the maximum session surplusfound so far (step 330). If the expected session surplus is greater thanthe maximum session surplus so far found then the selected service arrayvariable is updated with the service (m,n) currently being considered,and the associated expected session surplus (step 332). The loop ofinstructions is then repeated for any indicated services that have notyet been considered. Once all the indicated services have beenconsidered then the consideration of the dynamically-priced serviceoffering currently being considered ends (step 336).

Where the initially selected service offering is a variable bandwidthservice offering then the process for calculating the expected sessionsurplus (FIG. 17) performed by the bandwidth broker computer (FIG. 16B)is identical to the process for calculating the expected session surpluswhere a dynamically-priced service offering is being considered save forone extra processing step. This extra processing step is theintroduction of a test (step 332) at the start of each iteration of theloop of instructions which finds whether the currently selected variablebandwidth service offering is offering sufficient bandwidth to supportthe indicated service being considered in the current iteration of theloop of instructions (steps 322 to 335). If the service offering wouldnot be able to provide a service with a level of bandwidth as great asthat needed for the currently indicated service then the possibility ofusing that service is in effect discounted by jumping to the nextiteration of the loop of instructions (steps 322 to 335).

The calculation of expected penalised second half surplus performed bythe bandwidth broker computer (as part of the calculation of expectedsession surplus (step 328 in FIGS. 16 and 17)) will now be explainedwith reference to FIGS. 18 to 23.

At the top level the calculation of expected penalised second halfsurplus consists of the steps shown in FIG. 18. Note that m′ and n′ inthe Figures refer respectively to the indicated service and serviceoffering chosen for the second half of the delivery. It will be seenthat the process comprises the repeated iteration of a loop ofinstructions (steps 344 to 361), once for each of the service offeringswhich might be used to provide service for the delivery during thesecond half of that delivery. The consideration of each service offeringinvolves the consideration of each indicated service when provided bythat service offering. The loop of instructions comprises a first partin which the expected penalised second half surplus is calculated forthe service offering currently being considered (steps 344 to 354), anda second half (steps 356 and 358) in which the maximum of the expectedpenalised second half surpluses calculated so far is found.

FIG. 19A illustrates the process carried out by the bandwidth brokercomputer to determine the expected penalised second half surplus where adynamically-priced service offering is used for the second half of thedelivery.

To this end a block of instructions (step 372 to 380) is carried out foreach of the indicated services taken from the n′th dynamically-pricedservice offering. That block of instructions (step 372 to 380) beginswith the calculation with the probability of the m′th indicated servicebeing selected given assuming that the n′th dynamically-priced serviceoffering is used for the second half of the delivery. This step (372)will now be explained in more detail with reference to FIGS. 19B and 19Cbelow.

A process for calculating a price reaction service sequence (FIG. 19B)begins with the initialisation of a price reaction service sequencearray (which has a number of elements which is equal to the number ofindicated services within the dynamically-priced service offeringcurrently being considered (including the ‘zero’ indicated service))such that each of the elements is set to zero except for the first whichis set to the number of indicated services (step 190). This is followedby the initialisation of a step count variable to one (step 192).

Were the price of the n′th service offering to be set to zero then theindicated service which offered the highest instantaneous surplus wouldnecessarily be that associated with the highest bandwidth. Hence, thefirst element of the array is set to the number of the highest indicatedservice. The reaction to a rising price will then pass through one ormore of the other indicated services until the price reaches such alevel (this was calculated as $apex earlier) that the purchaser choosesthe zeroth indicated service. It is this sequence of steps that thebuyer array intends to record.

Having initialised the step count variable, a step_start variable is setequal to the number of the highest indicated service and a step_finishvariable is set to the second highest indicated service (step 194).Thereafter, in step 196, the unit value of the indicated service withthe highest bandwidth is calculated (step 196). It is to be noted thatthe unit value rises and falls with the instantaneous surplusaccumulation rate in the present case since the price of thevariable-bandwidth service is fixed.

Next, the unit value associated with the indicated service having thecurrent value of the step_finish variable as an index number is found(step 198). A test is then carried out to find out whether the unitvalue at the step_finish is less than the unit value at the step_start(step 200). If it is, then a purchaser operating at the m′th indicatedservice would not choose to use the (m′−1)th indicated service since heor she would prefer the m′th indicated service. If, however, theopposite is true then a rising price will cause the purchaser topurchase the (m′−1)th indicated service in preference to the mthindicated service. In that case, a step update block of instructions(step 202 to step 208) is carried out. That block of instructions beginswith the incrementing of the step count variable to indicate thatanother step in the purchasers price reaction sequence has been found(step 202). This is followed by an entry being made in the buy array toindicate that the (m′−1)th indicated service would be visited by apurchaser in reaction to a rising price (step 204). Thereafter, themarginal price at which the purchaser would move from the mth indicatedservice to the (m′−1)th indicated service is found (step 206). As whencalculating $apex, account may be taken of the undesirability ofchanging indicated service if only a short period of the deliveryremains. The block of instructions finishes with the setting of thestep_start variable to the current value of step_finish (step 208)thereby causing the following iteration of the loop to relate to thenext step in the users price reaction sequence. The loop of instructions(step 198 to step 208) is then repeated until the step considered isthat which causes the purchaser to cease purchasing bandwidthaltogether.

Once the reaction of the purchaser to rising price in adynamically-priced service offering has been calculated, it is possibleto calculate probability of a purchaser choosing a given indicatedservice from a dynamically-priced service offering. The process fordoing this is illustrated in FIG. 19C. The process begins with theinitialisation of an indicated service index number to zero (step 390).This is followed by an initialisation of a selection probability array(which again has as many elements as there are indicated services) tozero (step 392).

A loop of instructions (step 394 to step 402) is then entered which isrepeated as many times as there are steps in the purchaser's pricereaction sequence. In the first of a block of instructions so repeated,the probability of selecting the member of the purchasers price reactionsequence currently being considered is found. This is calculated bysubstituting half the duration of the delivery as the time variable inthe probability density function which represents the price in the n′thservice offering and then integrating that function between the marginalprice which causes a purchaser (seeking to maximise the penalised secondhalf surplus) to drop to the indicated service currently beingconsidered and the marginal price which causes the purchaser to dropfrom the indicated service currently being considered (step 396). Thiscalculation is immediately followed by a calculation of the likely priceof the n′th service offering given that the price has caused thepurchaser to move to the indicated service currently being considered(step 398).

Returning now to FIG. 19A, a test (step 374) is carried out to find outwhether the indicated service currently being considered would beadopted by a purchaser in any circumstance. If it would not then theprocess continues to the next iteration of the loop (if any). If, on theother hand, the m′th indicated service is included within the purchasersprice reaction sequence then the expected second half surplus iscalculated (step 376) and then modified by the addition of the productof the probability of the m′th indicated service being selected and thepenalised second half surplus gained were that indicated service to beprovided for the duration of the second half (step 380).

The price used in this calculation is the expected price given thatprice changes have caused the purchaser to select the m′th indicatedservice as calculated above (FIG. 19C). The above process is thenrepeated for each of the M′th services until an expected penalisedsecond half surplus has been calculated.

The process for calculating the expected second half surplus gained fromthe variable bandwidth service offering (FIGS. 20A, 20B and 20C) issimilar to that set out above for the dynamically-priced service.However, the reaction sequence found in this case is a reaction toincreasing bandwidth rather than a reaction to increasing price. Notethat in the Figures $_(n′) refers to the price of bandwidth in theservice offering being considered for the second half of the delivery.

Having obtained the greatest expected penalised second half surplus bythe processes illustrated in FIGS. 18 to 20C, the bandwidth brokercomputer is able to select that service which maximises the expectedsession surplus. Because of the penalties incurred for choosing a lowerindicated service at the half-way point, an initial service whichmatches the users combined requirements for stability and rate asrepresented by the utility penalties and the utility of the indicatedservices is selected.

After a period of 30 seconds, an in-delivery service selection iscarried out. This service selection is carried out identically to theinitial service selection described above save for a penalty being added(in step 462 in FIG. 22) to those subsequent service selections inaccordance with the penalty set out by the purchaser in the quality ofdelivery specification (FIG. 7) and the calculations involving theduration of the delivery in the initial service selection being replacedwith calculations involving the duration of the remainder of thedelivery in subsequent service selections.

Returning now to FIG. 8, having determined the service to be applied tothe content file transfer to the requesting user (in either the initialevaluation or subsequent re-evaluations), the agent computer A1 sends(step 8) a message indicating the source and destination IP addressesand TCP ports of the content file transfer and the Diff-Serv markingassociated with the selected indicated service to the marker 164.

In the meantime, the caching server C1 sets up a streaming session withthe user's PC 152. The caching server divides the content file intopackets and starts sending (step 10) those packets to the user's PC 152via the marker 164. Once the marker 164 has received the Diff-Servmarking message from the bandwidth broker computer B1, it recognisespackets belonging to the content file transfer (the IP address and UserDatagram Protocol (UDP) port in the marking instruction will match thecorresponding parameters in packets belonging to the content filetransfer—note that, since it is operating as a transparent cache, thecaching server operates to use the origin server's address as the sourceaddress of the packets). The marker marks packets so recognised with aDiff-Serv codepoint that corresponds to the selected bandwidth.

The marked packets are forwarded to the CMTS 146 which will schedule thepackets sent from it in accordance with the diff-serv codepoints theycontain.

It will be seen how the above described embodiment enables a singlequality of delivery specification to be used in the selection of asuitable service type, even when the selection is between variablebandwidth and variable price service types. In particular, on the basisof the quality of delivery specification data (FIG. 4), the bandwidthbroker computer B2 of the DSL network running the process explainedabove is able to select a service from either the variable price serviceoffering or the constant bit-rate service offering. Also, the sameprocess carried out by the bandwidth broker computer B1 of the cablenetwork is, on the basis of the same quality of delivery specification,able to choose an indicated service from one of the three variablebandwidth service offerings.

A large number of variations might be made to the above embodimentwithout preventing it achieving the benefits of the present invention.These variations include (but are not limited to):

i) Instead of the values k and C which parameterise a predetermined formof probability density function, the local/regional network operatormight supply data which tabulates the value of a probability densityfunction obtained from empirical observations of the bandwidth or pricebehaviour of each service offering;

ii) a single bandwidth broking computer could carry out the process forboth the cable network and the DSL network;

iii) a single quality of delivery policy (FIG. 4) and a single agentcomputer could be used for different access networks of similar ordifferent technologies;

iv) The further into a session premature termination occurs, the morenegative impact it has. In preferred embodiments, the terminationpenalty, ΔS_(m,0), varies with time. E.g. ΔS_(m,0)=a_(m)T+b_(m).

To allow for more accurate approximations of this kind in the futureembodiments might allow for the formula to be specified (in addition tothe specification of any parameters such as a and/or b). Alternativelythe formula may be stored with curves used to determine the values ofa_(b) _(rm) and b_(brm);

v) in the above-described embodiments the quality of delivery is assumedto accord with the amount of capacity provided to a delivery at abottleneck node in that delivery. In other embodiments, the quality ofdelivery might be judged by the delay in delivering packets form thecaching computer to the customer's PC. In a similar way to the way theabove embodiment chooses a network service which offers a desired levelof stability in supplied bandwidth, in such other embodiments, thenetwork service chosen could be that which offers a suitable variationin the delay experienced by packets in the delivery—embodiments mightalso take both measures of quality of delivery into account;

vi) in the above embodiment, the agent, cache and bandwidth brokercomputers were separate from one another. In alternative embodiments,any two or all of these functions could be carried out by a singlecomputer;

vii) in the above embodiment, the available bandwidth was communicatedas part of the service offering data (FIGS. 11A and 11B)—it couldalternatively be communicated by means of explicit congestionnotification marks set in the packets of the delivery by routersexperiencing congestion. Price could also be communicated in this way.

1. A method of selecting a network service from a plurality of networkservices available for a communication, said method comprising: storingutility data representing the utility of one or more correspondinglevels of communication resource provided for said communication duringsaid communication; storing an indication of the stability in the amountof said communications resource provided for a communication by one ormore services offered by said network; calculating, from said servicestability data, one or more measures of the likelihood of apredetermined variation occurring in the amount of resource provided forsaid communication by a service at a future time during saidcommunication; selecting, in dependence upon said likelihood measuresand said utility data, a network service for said communication.
 2. Amethod according to claim 1 wherein said selection step involves adetermination of what service to request for said communication.
 3. Amethod according to claim 1 wherein said selection step involves adetermination of what service to provide for said communication.
 4. Amethod according to claim 1 in which said service stability datacomprises data defining a probability density function defining thelikelihood of a variable lying within a range of values at a time aftersaid selection, wherein said variable determines the amount of resourceprovided for a communication by a service.
 5. A method according toclaim 4 wherein the maximum of said probability density function is setto the value of said variable at the time of said selection.
 6. A methodaccording to claim 4 wherein said variable represents the price of adynamically-priced service.
 7. A method according to claim 4 in whichsaid variable represents the amount of bandwidth available for saidcommunication in a variable-bandwidth service.
 8. A method according toclaim 1 wherein: said stability desirability data comprises one or moreutility indications each comprising a transmission rate and anassociated utility accumulation rate for that rate; said likelihoodcalculation involves calculating measures of the likelihood of saidservice type providing said communication with said transmission rate atsaid future time; and said selection involves calculating an expectationof the surplus which would be accumulated by said communication over apredetermined period were said service type to be selected, thecalculation of said expectation involving calculating the sum of theproducts of said likelihood, the associated utility accumulation rateand the duration of said predetermined period.
 9. A method according toclaim 8 wherein said selection step involves selecting the networkservice which offers the highest expectation of surplus for saidcommunication over said predetermined period.
 10. A method according toclaim 8 wherein said network offers a variable-bandwidth service type,wherein said likelihood determination step involves calculating thelikelihood that said variable-bandwidth falls below said transmissionrate.
 11. A method according to claim 8 wherein said network offers adynamically priced service type, said method further comprising:calculating a marginal price to which the price of saiddynamically-priced service type would need to rise to result in saidtransmission rate not being provided to said communication by saiddynamically-priced service type; wherein said likelihood determinationstep involves calculating the likelihood that said price rises abovesaid marginal price.
 12. A method according to claim 8 wherein saidnetwork offers a constant bit-rate service type, said expectation ofsurplus over said predetermined period being calculated as the utilityaccumulation rate less the price, times the duration of saidpredetermined period.
 13. A method according to claim 8 wherein saidpredetermined time period equals the duration of the communication aftersaid selection.
 14. A method according to claim 8 wherein: saidstability desirability data comprises a plurality of said utilityindications and penalty data representing a utility penalty dataassociated with moving from one of those transmission rates to a lowerone of those transmission rates; and said calculation of saidexpectation of the surplus involves the subtraction of utility penaltiesassociated with moving from an initial rate at the time of selection toa different rate after said future time.
 15. A method of sharing,between a plurality of communications, the resources of a networkoffering a plurality of services, said method comprising carrying out amethod according to claim 3 for each of said plurality ofcommunications.
 16. A program storage device readable by a processingapparatus, said device embodying a program of instructions executable bythe processor to perform the steps of claim
 1. 17. A network serviceselection apparatus comprising: a storage medium having recorded thereinprocessor readable code processable to select a network service for acommunication, said code comprising: stability desirability data readingcode processable to read one or more stored utility accumulation ratesrepresenting the utility of one or more corresponding levels ofcommunication resource provided for said communication during saidcommunication; likelihood calculation code processable to calculate,from stored service stability data representing an indication of thestability in the amount of said communications resource provided for acommunication by one or more services offered by said network, one ormore measures of the likelihood of a predetermined variation occurringin the amount of resource provided for said communication by a serviceat a future time during said communication; and network serviceselection code processable to select, in dependence upon said likelihoodmeasures and said one or more utility accumulation rates, a networkservice for said communication.
 18. A method of selecting a networkservice from a plurality of network services available for acommunication, said method comprising: storing one or more acceptablerisk indications representing the acceptable risk of a predeterminedvariation occurring in the amount of resource provided for saidcommunication during said communication; storing an indication of thestability in the amount of said communications resource provided for acommunication by one or more services offered by said network;calculating, from said service stability data, one or more measures ofthe likelihood of a predetermined variation occurring in the amount ofresource provided for said communication by a service at a future timeduring said communication; selecting, in dependence upon a comparison ofsaid likelihood measures and said acceptable risk indications, a networkservice for said communication.
 19. A method according to claim 18wherein said predetermined variation is the variation which leads tosaid communication being terminated prematurely.
 20. A program storagedevice readable by a processing apparatus, said device embodying aprogram of instructions executable by the processor to perform the stepsof claim
 18. 21. A method of selecting, during a communication, anetwork service from a plurality of network services available for saidcommunication, said method comprising: storing stability desirabilitydata representing the importance of stability in the amount ofcommunication resource provided for said communication during saidcommunication; identifying the service currently being provided for saidcommunication; selecting, in dependence upon said stability desirabilitydata and said identified service, a network service for some or all ofthe remainder of said communication.
 22. A method according to claim 21wherein: said stability desirability data comprises one or more utilityindications each comprising a transmission rate and an associatedutility accumulation rate for that transmission rate and penalty datarepresenting a utility penalty associated with moving from one of thosetransmission rates to a lower one of those transmission rates; and saidselection involves calculating a measure of utility of said servicewhich includes an associated penalty value where the transmission ratechanges after said selection.
 23. A program storage device readable by aprocessing apparatus, said device embodying a program of instructionsexecutable by the processor to perform the steps of claim 21.